1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method and apparatus for operating such a computer system attached to a host data stream, such that the computer system can automatically recognize the presence of a host application presentation space in the data stream coming from the host application. Using the present invention, the programmer defines attributes of a presentation space he is interested in, then registers that presentation space definition. The present invention monitors the data stream, and generates an asynchronous notification if that presentation space appears in the host data stream. This notification automatically invokes software to process the presentation space information.
2. Description of the Related Art
One of the challenges facing information services ("IS") professionals today is the difficulty of bridging legacy mainframe host data to modern PC-based user interfaces. Most legacy host applications present their data in text-based user interfaces designed for use on specific, obsolete character-based terminals. The legacy applications were written with this character-based terminal presentation space as the only interface format in which the host data output is created, and in which host data input is expected. "Presentation space" is a term used abstractly to refer to the collection of information that together comprises the information to be displayed on a screen, as well as the control data that conveys how and where that information is to represented.
A typical character-based terminal is the IBM Model 327X. (IBM is a registered trademark of the International Business Machines Corporation.) This terminal model was designed to display information in a matrix of characters, where the matrix consisted of 24 rows each having 80 columns. When programs were written expecting this display format, programmers would specify placement of information on the screen using specific row and column locations. Information formatted for this display is sent as a "data stream" to the mechanism in the display hardware that is responsible for actually displaying the screen contents. The phrase "data stream" refers to the fact that the data is sent as a linear string, or stream, of characters. This stream of characters contains both the actual textual information to be displayed on the screen, as well as information specifying where and how the text is to be displayed. "Where" consists of the row and column where the text is to begin, and "how" consists of a limited number of presentation attributes such as what color (typically either green or white) to use when displaying that text. While the Model 327X is a specific type of IBM display hardware, data formatted for any display having similar characteristics became a de facto standard format referred to as a "3270 data stream". Similarly, the IBM Model 525X. is another type of character-based terminal. This terminal displays data in a slightly different manner from the IBM 327X, and consequently uses a different data stream format. The "5250 data stream" also became a de facto standard format for displays having similar characteristics. A third type of data stream format commonly used by legacy host applications is referred to simply as an "ASCII data stream". While an ASCII data stream is not formatted for a specific model of display screen, a data stream in this format has certain predefined characteristics (for example, the manner in which a control character indicates the line spacing to be used).
The displays used with modern computer workstations (including personal computers, network computers, etc.) support graphics and video, in addition to text characters. These displays do not use a character-based row and column matrix approach to screen layout. Instead, the programmer has access to thousands of tiny display elements, allowing the various types of information to be placed virtually anywhere on the display screen.
When the modem computer workstation is used to access a legacy host application running on a mainframe, the output data created by that host application is typically still formatted as one of the character-based data streams. The workstation has access to the host application using mainframe emulator software. An example of mainframe emulator software is the Personal Communications product from IBM. Emulator software runs on the workstation. This software provides facilities to establish a telecommunications connection between the workstation and the host computer, to invoke execution of a software application stored on that host, and to transfer information between the host and the workstation as the application runs. When a legacy application is accessed using an emulator, it appears to the host as if the host was interacting with a so-called "dumb terminal", instead of an intelligent workstation. The emulator takes care of reformatting the character-based data sent by the host, for display on a modern display screen.
Currently, there is movement in the computer information industry away from using mainframe emulators as the primary user interface to the host applications. Therein lies the problem. When an emulator is no longer used, the emulator's complicated interface logic for translating between the character-based data stream and the modern workstation display screen layout must be performed by some other service running on the workstation.
One solution to this problem of obsolete data stream formats is to rewrite the host applications, so that they create their output in a format recognized by modern displays. For most companies, this rewrite of host applications represents a monumental task. Not only are there literally millions of lines of code to rewrite, the skills that are required to program host applications (ability to use the COBOL programming language, for example) are in short supply.
There is an alternative solution to rewriting the host applications, which many IS professionals have chosen. The user interface facilities of many modern application programs accept the existing host presentation space format when retrieving data from the host application, but do not show the data to the user in this format. The new user interface facilities "scrape" (that is, extract) data from the host presentation space, and present it to the user in a form that is appropriate for the display screen device used with the computer system. By convention, this form tends to be a graphical user interface where information is presented in a window-based layout. The user interacts with the application using this graphical user interface. When data needs to be returned to the application computer, for example in response to the user's input, the user interface facility converts this information automatically into a format that is recognized by the host application.
This solves the problem of having to rewrite the host application, but it presents a new problem. Presentation spaces appear asynchronously in the data stream sent from the host application, so using the presentation space format as the expected format for user interface data becomes unpredictable. Whether it is due to network traffic, host application response time, etc., there is no set time when a presentation space will begin arriving from the host application, and no specific period of time in which the entire screen contents will be transmitted. What is needed is a program that automates host presentation space interaction. This program should constantly monitor the data stream coming from the host to see if a particular presentation space appears. When the presentation space does appear, this program should asynchronously notify a software routine that embodies knowledge of how the presentation space is formatted, and how the information contained in that presentation space is to be presented to the user.